/*
大诗人李白从家里出来，酒壶中有酒两斗。他
边走边唱:
  无事街上走，提壶去打酒
   逢店加一倍，遇花喝一斗。
李白一共遇到店5次，遇到花10次，已知最后一次遇到的是花，
此时他 正好把酒喝光了。请你计算李白遇到店和花的次序，并统计有多少种可能的方案。

已知遇到店5次，遇到花10次，并且最后一次遇到花正好把酒喝光。
诗仙李白遇到的店和花两种状态可以用0/1表示，假设用1表示店，0表示花。
5个店和10个花，最后一次遇到花即0，此时酒刚好剩一斗。
因此，李白前面共遇到5个店和9个花，即寻找5个1和9个0组成的14位二进制数，使得2斗最终变为1斗的方案。
因此我们枚举出14位二进制数表示范围中的每个数i，然后提取其各位上的值，
1就把酒量加倍且统计店数加1，0就让酒量减1，当最终算出酒量为1，且店数为5时（此时0的个数就是9个），即为方案之一。
*/
#include <bits/stdc++.h>
using namespace std;
int main()
{
    int a,i,n,d,sum=0; //1为店，0为花
    for(a=1;a<(1<<14);a++) //1-15
    {
        n=2; //初始酒数
        d=0; //遇到店数为0
        for(i=0;i<14;i++)
        {
            if(a&1<<i) //1为遇到店
            {
                d++; //店数
                n=n*2; //酒*2
            }
            else //0为遇到花
            {
                n--; //酒-1
            }
        }
        if(n==1&&d==5)
        {
            for(i=0;i<14;i++)
            {
                if(a&1<<i) //1为遇到店
                {
                    cout<<"店 ";
                }
                else //0为遇到花
                {
                    cout<<"花 ";
                }
            }
            sum++;
            cout<<endl;
        }
    }
    cout<<sum;
    return 0;
}
